import os
from pydub import AudioSegment


def extract_filename(file_path):
    file_name = os.path.basename(file_path)
    return file_name.split('.')[0]


def audioRateTrans(input_file):
    output_file = 'buff/3_wav_16k/' + extract_filename(input_file) + '.wav'
    output_file_name = 'buff/3_wav_16k/' + extract_filename(input_file)
    target_sample_rate = 16000  # 目标采样率
    # 加载音频文件
    audio = AudioSegment.from_file(input_file)
    # 转换采样率
    audio = audio.set_frame_rate(target_sample_rate)
    # 导出音频文件
    audio.export(output_file, format="wav")
    return output_file


def delete_file(file_path):
    if os.path.exists(file_path):
        os.remove(file_path)
        print(f"文件 {file_path} 已成功删除")
    else:
        print(f"文件 {file_path} 不存在")


def traverse_directory(directory):
    for root, dirs, files in os.walk(directory):
        # 遍历目录中的文件
        for file in files:
            file_path = os.path.join(root, file)
            # 在这里执行文件操作，例如打印文件路径或进行其他处理
            print(file_path)
            audioRateTrans(file_path)
            delete_file(file_path)


os.environ['PATH'] = '/usr/local/bin:' + os.environ['PATH']  # 添加 ffmpeg 路径到环境变量中
# 指定要遍历的目录路径
directory_path = 'buff/2_origin_wav'
# 调用遍历函数
traverse_directory(directory_path)
